<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        const obj = {
            uname:'pink',
            age:18,
            family:{
                baby:'小pink'
            }
        }
        // const o = obj
        // 这样堆是一样的
        // console.log(o)
        // 如果这样赋值，会让原本的对象改变
        // o.age = 20 
        // console.log(o)
        // console.log(obj)
        //1.浅拷贝
        // 1.1 使用展开运算符
        // const o = {...obj}  //使用展开运算符 ...
        // console.log(o)
        // o.age = 20
        // console.log(o) //这时不会改变原来对象中的值
        // console.log(obj)
        // 1.2 使用Object.assign()
        // const o ={}
        // Object.assign(o,obj) //利用Object.assign()静态方法实现拷贝
        // console.log(o) 
        // o.age = 20
        // console.log(o) 
        // console.log(obj)
        const o ={}
        Object.assign(o, obj)
        o.age = 20 // 简单数据类型拷贝的是值
        o.family.baby = '老pink' //引用数据类型拷贝的是地址
        console.log(o)
        console.log(obj)
    </script>
</body>
</html>